import java.util.Arrays;
import java.util.Random;

/**
 * 冒泡排序
 */
public class Demo01 {

  public static void main(String[] args) {
    int[] arr = {9, 8, 7, 6, 5, 4, 3, 2, 1};//定义数组
    //随机填充数组
    arr = new int[9];
    Random r = new Random();
    for(int i=0;i<arr.length;i++){
      arr[i]=r.nextInt(100);
    }

    arr = new int[]{1,2,3,4,5,6,7,8,9};

    System.out.println("排序前的原始数组:\t"+Arrays.toString(arr));
    int temp = 0;//在循环外部申请用于交换的临时变量,会更节约空间时间,(PS:特别是引用类型)
    for (int i = 0; i < arr.length - 1; i++) {
      System.out.format("\n第%02d轮排序,比较%d次\n", i, arr.length - 1 - i);
      for (int j = 0; j < arr.length - 1 - i; j++) {
        if (arr[j] > arr[j + 1]) {
          temp = arr[j];
          arr[j] = arr[j + 1];
          arr[j + 1] = temp;
        }
        System.out.format("第%02d轮第%d次:\t%s\n", i, j, Arrays.toString(arr));
        //String.format()
        //%s 输出字符串 %10s %-10s 输出的字符串长度最少位10,如果没有达到10,在左边或右边(-)补充空格
        //%d 输出整数 %2d %02d 输出的数字如果没有到达2位数,则在左边补空格(0)
        //%f 输出浮点数 %.2f 保留小数点2位
      }

    }
  }

}
